const Sequelize = require("sequelize");
const seq = require("./seq");

// 创建 User 模型。数据表的名字是 users
const User = seq.define("user", {
  // id 会自动创建，并设为主键、自增
  userName: {
    type: Sequelize.STRING,   // varchar(255)
    allowNull: false          // 不能为空
  },
  password: {
    type: Sequelize.STRING,
    allowNull: false
  },
  nickName: {
    type: Sequelize.STRING,
    comment: "昵称"
  }
  // 自动创建：createdAt 和 updatedAt
});

// 创建 Blog 模型
const Blog = seq.define("blog", {
  title: {
    type: Sequelize.STRING,
    allowNull: false
  },
  content: {
    type: Sequelize.TEXT,
    allowNull: false
  },
  userId: {
    type: Sequelize.INTEGER,
    allowNull: false
  }
})

// 外键关联
Blog.belongsTo(User, {
  // 创建外键 Blog.userId -> User.id
  foreignKey: "userId"
});

User.hasMany(Blog, {
  // 创建外键 Blog.userId -> User.id
  foreignKey: "userId"
});

// // 下面这么写要把 Blog 模型中的 userId 注释掉， sequelize 会自动创建一个 Blog.userId -> User.id 关联关系 
// Blog.belongsTo(User);




module.exports = {
  User,
  Blog
}